package com.yiren.backstage.judge.services.standard;

import com.yiren.backstage.currency.enums.CarStateValueEnum;
import com.yiren.backstage.judge.thread.AutoJudgeThread;

/**
 * Time:2022/3/31 10:29
 * Author:xiaozan
 * Description:封装状态服务接口
 */
public interface IPackageStateService {

    /**
     * 熄火检测
     * @return
     */
    CarStateValueEnum flameout();

    /**
     * 偏转角度检测
     * @param startAngle 开始角度
     * @param realTimeAngle 实时角度
     * @param checkType 角度检测类型 1：偏转角度 2：左偏转角度 3：右偏转角度
     * @return
     */
    float deflectionAngle(float startAngle,float realTimeAngle,int checkType);

    /**
     * 偏转距离检测  用于高精度
     * @param startDistance 开始距离
     * @param realTimeDistance 实时距离
     * @return
     */
    float deflectionDistance(int startDistance,int realTimeDistance);

    /**
     * 项目评判是否执行完成 ： 监控在规定要求内完成项目操作
     * @param autoJudgeThread
     * @return
     */
    CarStateValueEnum judgeExecuteFinish(AutoJudgeThread autoJudgeThread);

    /**
     * 制动不平顺检测
     */
    CarStateValueEnum brakeNoStableCheck();

    /**
     * 越级挂挡检测
     */
    CarStateValueEnum bypassGearCheck();

    /**
     * 起步闯动检测
     * 造成闯动的原因有：
     * 1、油门加得过大，发动机转速过高；
     * 2、车速没起来，离合器松得过快；
     */
    CarStateValueEnum qibuThroughDynamic();
}
